【新機能】EC2コンソールのスクリーンショットを取得可能になりました
ウィスキー、シガー、パイプをこよなく愛する大栗です。
先ほどEC2のコンソールに対してスクリーンショットを取得する事ができる機能がリリースされましたので、ご紹介します。
- What's New EC2 now supports the ability to capture screenshots of an instance console
- AWS Blog EC2 Instance Console Screenshot
どんな機能?
今まで、仮想サーバであるEC2へアクセスする方法はネットワーク越しのリモートアクセス(LinuxではSSH、WindowsではRDPなど)しか出来ないため、インスタンスの起動時に障害が起こった場合にトラブルシュートするための情報がシステムログの取得に限られていました。特にWindows Serverのトラブルシューティングは難しい状態でした。
今回、EC2のコンソールをスクリーンショットとして取得することができるようになりました。取得元がコンソールであるためOSの起動時に障害が起こっている場合でも取得できます。
ドキュメントには、以下のような状態の例が記載されています。
スクリーンショットを取得してみる
スクリーンショットを取得するにはManagement Consoleでインスタンスを選択し、アクションの[インスタンスの設定]-[インスタンスのスクリーンショットの取得]をクリックします。ただしスクリーンショットを取得できるインスタンスの仮想化タイプはHVMに限られるのでご注意ください。
取得時刻とスクリーンショットが表示されます。
Windowsインスタンス
Windows Server 2012 R2を起動して、時系列でスクリーンショットを取得してみます。
まずはWindowsインスタンスを起動し、インスタンスの状態がrunning
になるまで待ちます。running
になったらスクリーンショットを取得していきます。
Windows Serverの起動直後に表示されるアイコンが見えます。
しばらくすると、画面下部に丸がくるくる回り出します。
デバイスの準備が始まります。
ログオン画面になりました。画面に現在時刻20:23 UTC(05:23 JST)が表示されています。この状態になるとパスワードの取得ができるようになり、ログインできます。
Linuxインスタンス
LinuxでもWindowsと同様にスクリーンショットを取得できます。Amazon Linux 2016.03(HVM)インスタンスを起動し、インスタンスの状態がrunning
になるまで待ちます。running
になったらスクリーンショットを取得していきます。
QEMU HARDDISK ATA-7 Hard-Disk
をアタッチしてHDDから起動しています。
カーネルが起動中です。
Amazon Linuxのログインコンソールが表示されました。
CLIでのスクリーンショット取得
AWS CLIでもスクリーンショットの取得が可能です。aws ec2 get-console-screenshot
で取得できるのですが、結果がBASE64エンコードされているのでエンコードが必要です。Max(OS X El Capitanで確認)では以下のようなコマンドでファイルに出力します。
aws ec2 get-console-screenshot --instance-id <対象インスタンスID> --query 'ImageData' --output text | base64 -D > ./filename.jpg
Windowsの場合
Linuxの場合
まとめ
今まではシステムログでしか起動状態の確認が出来ませんでしたが、今後はスクリーンショットで状態を確認することでできるので、トラブルシュートが楽になりますね。本当はリモートKVMを実装してもらえると何でもできるんですが、、、、
しかし、トラブルシュートはスクリーンショットだけでなくシステムログを併用しつつ状態を確認するのが肝要です。